//package com.pony.iphone.service;
//
//import com.baomidou.mybatisplus.extension.service.IService;
//import com.pony.iphone.dto.QuestionAnswerDto;
//import com.pony.iphone.dto.QuestionAnswerErrorDto;
//import com.pony.iphone.entity.Question;
//import com.pony.iphone.utils.PageParam;
//import com.pony.iphone.utils.R;
//import org.apache.ibatis.annotations.Mapper;
//import org.springframework.transaction.annotation.Transactional;
//
//import java.util.ArrayList;
//
///**
// * @author pony
// * @create 2025-09-17 14:31
// */
//public interface QuestionService extends IService<Question> {
//    // lua：上传问题和答案
//    R uploadForLua(QuestionAnswerDto questionAnswerDto);
//
//    // lua：获取一个问题的答案
//    R getAnswerForLua(QuestionAnswerDto qaDto);
//
//    /**
//     * lua：获得一个问题的答案
//     * @param questionAnswerErrorDtoList 一个问题和所有答案选项
//     * @return R
//     */
//    @Transactional
//    R uploadErrorLua(ArrayList<QuestionAnswerErrorDto> questionAnswerErrorDtoList);
//
//    /**
//     * 管理系统：获取问题管理系统分页信息
//     * @param pageParam 分页参数
//     * @param libraryId 题库id 非必传
//     * @param questionKey 问题关键字 非必传（如果传了，必须传题库id）
//     * @return
//     */
//    R getPage(PageParam pageParam, Long libraryId, String questionKey);
//
//    /**
//     * lua：获取当前一个题库所有问题的稳定版本，供脚本使用
//     * 这里只负责查询，而不计算（lua脚本需要流畅执行，没必要在这里进行计算来，lua脚本也没必要每次都获取最新的稳定）
//     * 计算会有专门的定时任务进行更新数据（每天晚上0点更新）
//     *
//     * 思路：就是当一个问题的答案有80%的被点击的概率，则就是这个问题的稳定版本
//     * 当然不是每个问题不一定有稳定版本，因为有一些题可能就没有标准答案，答案选那个都无所谓的
//     * 这时候就会随机选一个答案
//     * @param libraryName 题库id
//     * @param versionId 稳定版本id，非必传，不传的话就是获取最新的稳定版本
//     * @return R
//     */
//    R getStableForLua(String libraryName, Long versionId);
//}
